1. Field of the Invention
The present invention relates generally to communication networks. More particularly, the present invention relates to optimizing the delivery of data in mobile networks.
2. Background Art
The functionality of today's mobile devices, such as cellular telephones and personal digital assistants (PDAs), has rapidly increased to allow users of such mobile devices to receive and use applications that make frequent network requests, as well as content constituting large amounts of data, such as music and videos, over a communication network. Consequently, it has become critical for the hosts delivering such data over a communication network to exercise control over the manner in which the data is delivered to optimize network traffic and to improve user experience.
A host typically uses Transport Control Protocol (TCP) and Internet Protocol (IP) (TCP/IP) to communicate with a mobile device. TCP/IP is a suite of protocols designed to allow communication between networks regardless of the technologies implemented in each network. For example, FIG. 1 of the present application illustrates various layers of conventional TCP/IP stack 100.
As shown in FIG. 1, TCP/IP stack 100 includes application layer 105, presentation layer 110, session layer 115, transport layer 120, network layer 125, data-link layer 130 and physical layer 135. Application layer 105 is a user process cooperating with another process on the same or a different host. Examples of application layer 105 include telnet (protocol for remote terminal connections), FTP (file transfer protocol), RPC (remote procedure calls), SMTP TFTP (trivial file transfer protocol), DNS (domain name system) and NFS (network file system). Presentation layer 110 provides services such as encryption and compression of data and session layer 115 controls dialog by managing the period and timing of transmissions. Transport layer 120 provides end-to-end data transfer. The most common example transport layer 120 protocols are TCP, UDP (User Datagram Protocol) and ICMP (Internet Control Message Protocol). Network layer 125 provides a virtual network image of the internetwork and, in doing so, shields the higher layers from the lower network structure. IP is the best known of network layer 125 protocols. Data-link layer 130 provides an interface to the actual network hardware. Lastly, physical layer 135 is purely the hardware layer, such as the cable, radio-wave, satellite and network interface card.
As a packet is received by a host, the packet enters the lowest point of TCP/IP stack 100, which is physical layer 135, and travels the sequence of layers 105-135 that make up TCP/IP stack 100. Each layer then proceeds to strip-out the data it needs and passes the remaining packet, if required, to the next layer up in the stack. Likewise, when application layer 105 creates a packet, application layer 105 will pass the packet down to the next layer where further information is added by each and every subsequent layer until the packet emerges onto physical layer 135 as a full TCP/IP packet. As an example, a 30-byte packet created by application layer 105 may be sent to transport layer 120, e.g. TCP, where 20 bytes of TCP header are added to the packet. Thereafter, 20 bytes of IP header may be added by network layer 125 to the packet, and 22 bytes of Ethernet header may be added by data-link layer 130, before a full packet of 96 bytes arrives at physical layer 135 for transmission in the network. Similarly, when a packet arrives at physical layer 135, data are stripped out from the packet at each layer until a 30-byte packet arrives at application layer 105.
When multiple mobile devices request data (e.g., applications or content) from the host, for example, the host sequentially delivers the data over the network using conventional TCP/IP stack 100 in the order that the requests for the data were received. However, one or more of the mobile devices might experience poor radio frequency (RF) conditions, which can undesirably result in substantially reduced data transfer rates or dropped connections. Consequently, a request for data by a mobile device experiencing poor RF conditions can disadvantageously congest the flow of data in conventional TCP/IP stack 100, thereby degrading the performance of subsequent requests for data by other mobile devices that are experiencing good RF conditions.
Moreover, since TCP/IP stack 100 sequentially delivers data to mobile devices over the network in the order that the requests for the data were received, the flow of data in conventional TCP/IP stack 100 can also be congested, for example, by a single mobile device requesting a large amount of data. Such congestion can substantially degrade the performance of other mobile devices by causing lengthy delays in the delivery of smaller amounts of data requested by other mobile devices. Another major drawback of conventional TCP/IP stack 100 is that TCP/IP stack 100 cannot provide enhanced performance for premium users over non-premium users, since conventional TCP/IP stack 100 can only deliver data in the order that the requests for the data were received, regardless of the classification of the user (e.g., premium or non-premium). Consequently, conventional TCP/IP stack 100 cannot provide premium users with a better user experience than non-premium users.
Thus, there is a strong need in the art for a method and system for optimizing delivery of data to a mobile device over a communication network.